home *** CD-ROM | disk | FTP | other *** search
- // Copyright (c)1995 Ray Dream, Inc. All Rights Reserved.
- /* $Id: Rainbow.h 1.1 1996/07/19 00:15:33 Damien Exp $ */
- // Example of a RainbowShader Creation
-
- #ifndef __RAINBOW__
- #define __RAINBOW__
-
- #ifndef __COMSHDR__
- #include "COMShdr.h"
- #endif
-
- #ifndef __SHADRDLL__
- #include "Shdrdll.h"
- #endif
-
- DEFINE_GUID(CLSID_RainbowShader, 0x4A819881L, 0x62DD, 0x101C, 0xB8, 0x01, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
-
-
- // Data structure for exchange with the Shell
- struct RainbowShaderPublicData {
- short fIntensity;
- long fModeLocalOrGlobal;
- };
-
-
- #undef INTERFACE
- #define INTERFACE RainbowShader
- class RainbowShader : public COMShader {
- public :
- RainbowShaderPublicData RainbowPublicData;
-
- RainbowShader();
- ~RainbowShader();
-
- STDMETHODIMP_(I3DExtension*) Clone(THIS);
- STDMETHODIMP_(short) GetResID(THIS);
- STDMETHODIMP_(void*) GetExtensionDataBuffer(THIS);
- STDMETHODIMP_(BOOLEAN) IsEqualTo(THIS_ I3DExShader* aShader);
- STDMETHODIMP_(BOOLEAN) DependsOnAppliedExtent(THIS);
- STDMETHODIMP DoShade(THIS_ ShadingInOut* theShadingIO, ShadingElem* theShadingElem);
- STDMETHODIMP GetValue(THIS_ NUM3D* result, ShadingIn* theShadingIn, ShadingElem* theShadingElem);
- STDMETHODIMP GetColor(THIS_ COLOR3D* result, ShadingIn* theShadingIn, ShadingElem* theShadingElem);
- STDMETHODIMP GetVector(THIS_ VECTOR3D* result, ShadingIn* theShadingIn, ShadingElem* theShadingElem);
- STDMETHODIMP GetShadingFlags(THIS_ ShadingFlags* theFlags);
- STDMETHODIMP_(ULONG) GetPreferredOutput(THIS);
-
- STDMETHODIMP_(ExtensionDataMap*) GetExtensionDataMap(THIS);
-
- protected:
- void CopyData(COMShader* dest);
- };
-
-
- #endif // __RAINBOW__
-
-